package com.spsoft.vatoutinv.model.vo.vmshzqrdmanage;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 红字确认单审批流-明细信息
 *
 * @author : chenxudong
 * @date : 2024/1/4 15:01
 */
@Data
@ApiModel(value = "红字确认单审批流-明细信息")
public class VmsApprovalHzqrdItemVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键")
    private Long id;

    /**
     * 红字确认单申请流程表-主表ID
     */
    @ApiModelProperty(value = "红字确认单申请流程表-主表ID")
    private Long hzqrdId;

    /**
     * 序号
     */
    @ApiModelProperty(value = "序号")
    private Long xh;

    /**
     * 蓝字发票明细序号
     */
    @ApiModelProperty(value = "蓝字发票明细序号")
    private Long lzmxxh;

    /**
     * 商品和服务税收分类合并编码
     */
    @ApiModelProperty(value = "商品和服务税收分类合并编码")
    private String sphfwssflhbbm;

    /**
     * 货物或应税劳务、服务名称
     */
    @ApiModelProperty(value = "货物或应税劳务、服务名称")
    private String hwhyslwfwmc;

    /**
     * 商品服务简称
     */
    @ApiModelProperty(value = "商品服务简称")
    private String spfwjc;

    /**
     * 项目名称
     */
    @ApiModelProperty(value = "项目名称")
    private String xmmc;

    /**
     * 规格型号
     */
    @ApiModelProperty(value = "规格型号")
    private String ggxh;

    /**
     * 单位
     */
    @ApiModelProperty(value = "单位")
    private String dw;

    /**
     * 单价（数据库使用）
     */
    @JsonIgnore
    @ApiModelProperty(value = "单价")
    private String fpspdj;

    /**
     * 单价（返回前端使用）
     */
    @ApiModelProperty(value = "单价")
    private String dj;

    /**
     * 数量（数据库使用）
     */
    @JsonIgnore
    @ApiModelProperty(value = "数量")
    private String fpspsl;

    /**
     * 数量（返回前端使用）
     */
    @ApiModelProperty(value = "数量")
    private String sl;

    /**
     * 金额
     */
    @ApiModelProperty(value = "金额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal je;

    /**
     * 税率（数据库使用）
     */
    @JsonIgnore
    @ApiModelProperty(value = "税率")
    private BigDecimal sl1;

    /**
     * 税率（返回前端使用）
     */
    @ApiModelProperty(value = "税率")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal slv;

    /**
     * 税额
     */
    @ApiModelProperty(value = "税额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal se;

    // 以下字段非数据库字段，需要计算得出再返回前端
    /**
     * 可冲销数量
     */
    @ApiModelProperty(value = "可冲销数量")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal kcxsl;

    /**
     * 可冲销金额
     */
    @ApiModelProperty(value = "可冲销金额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal kcxje;

    /**
     * 可冲销税额
     */
    @ApiModelProperty(value = "可冲销税额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal kcxse;

    /**
     * 冲销数量
     */
    @ApiModelProperty(value = "冲销数量")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal cxsl;

    /**
     * 冲销金额
     */
    @ApiModelProperty(value = "冲销金额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal cxje;

    /**
     * 冲销税额
     */
    @ApiModelProperty(value = "冲销税额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal cxse;

}
